Hand/eye calibration method using projective invariant shape descriptor of 2-dimensional image

ABSTRACT

Provided is a hand/eye calibration method by using a projective invariant shape descriptor of a two-dimensional image. The method includes calculating a projective invariant shape descriptor of a two-dimensional image from at least two images obtained by a camera mounted on a robot hand, at a predetermined time interval, extracting corresponding points between the images by using the projective invariant shape descriptor, calculating a rotation matrix for the corresponding points from translation of the robot hand, calculating translation vector for the corresponding points from translation and rotation of the robot hand, and finding a relation between the robot hand and the camera based on the rotation matrix and the translation vector.

BACKGROUND OF THE INVENTION

This application is a divisional and claims the benefit of the priority of prior application Ser. No. 10/706,936, filed Nov. 14, 2003, entitled “Hand/eye calibration method using projective invariant shape descriptor of 2-dimensional image”, which is now U.S. Pat. No. 7,019,825 issued on Mar. 28, 2006.

1. Field of the Invention

The present invention relates to visual servoing technology, and more particularly, to a hand/eye calibration method using a projective invariant shape descriptor of a two-dimensional image.

2. Description of the Related Art

Hand/eye calibration denotes a procedure for determining the spatial transformation between a robot hand and a camera mounted on the robot hand to obtain a desired image using visual servoing technology in a robot's coordinate frame and control the robot. One of the hand/eye calibration methods, which is most frequently used, is to provide a prior motion information and to obtain desired information from images transforms generated based on the provided motion information. In order to easily and correctly extract transformation information of the robot hand, it is very important to correctly select corresponding points between transformed images in this method.

SUMMARY OF THE INVENTION

The present invention provides a hand/eye calibration method which makes it possible to easily and correctly extract transformation information between a robot hand and a camera.

The present invention also provides a computer readable medium having embodied thereon a computer program for the hand/eye calibration method.

According to an aspect of the present invention, there is provided a hand/eye calibration method. The method includes (a) calculating a projective invariant shape descriptor from at least two images consecutively obtained through a camera mounted on a robot hand; (b) extracting corresponding points between the images by using the projective invariant shape descriptor; (c) calculating a rotation matrix for the corresponding points from translation of the robot; (d) calculating translation vector for the corresponding points from translation and rotation of the robot; and (e) finding a relation between the robot hand and the camera based on the rotation matrix calculated in step (c) and the translation vector calculated in step (d).

According to an aspect of the present invention, there is provided a method of extracting corresponding points between images. The method includes (a) defining errors for a projective invariant shape descriptor for a two-dimensional image from at least two images obtained at a predetermined interval and calculating noisy invariance; (b) calculating a threshold to be used to set corresponding points according to the noisy invariance; (c) extracting boundary data from the images and presenting the extracted boundary data by subsampling N data; (d) minimizing the projective invariant shape descriptor; (e) transforming a following image into the following image according to the minimized projective invariant shape descriptor; (f) resetting distance between boundary data in consideration of the ratio of distance between boundary data before the transformation to distance between boundary data after the transformation; and (g) finding similarities between the boundary data and extracting corresponding points between the previous images and the following image.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other features and advantages of the present invention will become more apparent by describing in detail exemplary embodiments thereof with reference to the attached drawings in which:

FIG. 1 is a view of a robot hand on which a camera is mounted, the robot hand being controlled using visual servoing;

FIG. 2 is a view of an appearance of the camera of FIG. 1;

FIG. 3 is a view of a pin-hall camera model of the camera of FIG. 2;

FIG. 4 is a view of coordinate systems of an object plane and an image plane, and a projection result of the image plane to the object plane;

FIG. 5 is a view showing conditions to satisfy a linearity of the camera of FIG. 2;

FIG. 6 is a view presenting a relationship for a coordinate system of an object plane, a coordinate system on an image plane, and a world coordinate system of a robot hand;

FIG. 7 is a view for explaining a method of obtaining a projective invariant shape descriptor from a 2-dimensional image;

FIG. 8 is a view showing an example of projective invariant shape descriptor calculated from a 2-dimensional shape of FIG. 7;

FIG. 9 is a flowchart of a method for hand/eye calibration according to an embodiment of the present invention; and

FIG. 10 is a detailed flowchart of a method of obtaining corresponding points between a previous image and a following image shown in FIG. 9.

DETAILED DESCRIPTION OF THE INVENTION

The present invention will now be described more fully with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. In the drawings, like reference numerals refer to like elements throughout.

FIG. 1 is a view of a robot hand 100 on which a charged-coupled device (CCD) camera 110 is mounted to adopt a visual servoing controlling technique. Referring to FIG. 1, at least one CCD camera 110 is mounted at an end of the robot hand 100 used as an industrial robot.

FIG. 2 is a view of an appearance of the CCD camera 110 of FIG. 1. Referring to FIG. 2, the CCD camera 110 is composed of a main body 111, a CCD array 112, and a lens 114. The lens 114 has the same function as that of a crystalline lens of a person's eyes. The CCD array 112 corresponds to an image plane on which an image projected through the lens 114 of the CCD camera 110 is cast and has the same function as that of the retina of a person's eyes. When a focus of the lens 114 is set to infinitely, the length from a center of the lens 114 to the CCD array 112 denotes a focal length F, and the image looks different according to the focal length F. The focal length F is an important parameter necessary to estimate the length between the CCD camera 110 and an object.

FIG. 3 is a view of a pin-hall camera model of the CCD camera 110 of FIG. 2, and FIG. 4 is a view of coordinate systems of an object plane and an image plane, and a projection result of the image plane to the object plane. Referring to FIGS. 3 and 4, a projective transformation for an image in the pin-hall camera model can be expressed as follows.

$\begin{matrix} {\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = {{\frac{1}{{t_{31}X} + {t_{32}Y} + {t_{33}Z} + t_{34}}\begin{bmatrix} t_{11} & t_{12} & t_{13} & t_{14} \\ t_{21} & t_{22} & t_{23} & t_{24} \\ t_{31} & t_{32} & t_{33} & t_{34} \end{bmatrix}}\begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix}}} & (1) \end{matrix}$

where (u, v, 1) denotes a coordinates of a point q defined on the image plane, (X, Y, Z, 1) denotes a coordinates of a point P in an object coordinate system, and t_(ij) denotes an ij factor of a transformation matrix between an object plane and the image plane.

Here, if an object is projected to on a two-dimensional plane, i.e., Z=0, Equitation 1 is transformed as follows.

$\begin{matrix} {\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = {{\frac{1}{{t_{31}X} + {t_{32}Y} + t_{34}}\begin{bmatrix} t_{11} & t_{12} & t_{14} \\ t_{21} & t_{22} & t_{24} \\ t_{31} & t_{32} & t_{34} \end{bmatrix}}\begin{bmatrix} X \\ Y \\ 1 \end{bmatrix}}} & (2) \end{matrix}$

As shown in Equations 1 and 2, the process for obtaining an image is performed in non-linear environment. However, a linearized projective transformation is adopted to a two-dimensional image obtained through the CCD camera 110 rather than a non-linear projective transformation like in Equation 2.

FIG. 5 is a view showing conditions to obtain a linear model of the CCD camera 110 of FIG. 2. As shown in FIG. 5, if a length S from the CCD camera 110 to the object is sufficiently longer than a size S₀ of the object, the non-linear projective transformation from like Equation 2 is transformed as follows.

$\begin{matrix} {\begin{bmatrix} u \\ v \\ 1 \end{bmatrix} \approx {{S\begin{bmatrix} t_{11} & t_{12} & t_{14} \\ t_{21} & t_{22} & t_{24} \\ t_{31} & t_{32} & t_{34} \end{bmatrix}}\begin{bmatrix} X \\ Y \\ 1 \end{bmatrix}}} & (3) \end{matrix}$

A Fourier descriptor is a linearized shape descriptor which satisfies Equations 1, 2, and 3. The Fourier descriptor represents an image of the object with Fourier coefficients which are obtained by a two-dimensional Fourier transformation for the image contour of a two-dimensional object. However, this method can be applied only to a case where linearity of a camera is guaranteed, that is, where a distance between the CCD camera 110 and the object is too long. Therefore, to overcome the restriction, the image obtained from the CCD camera 110 is analyzed by using a projective invariant shape descriptor I in the present invention. As a result, even in a case where the linearity of the camera is not guaranteed, that is, the distance between the CCD camera 110 and the object is not long, the image can be analyzed correctly without being affected by noise, slant angles, or the nonlinearity of-the CCD camera 110 occurring when images are obtained.

FIG. 6 is a view presenting a relationship for a coordinate system of an object plane, a coordinate system on an image plane, and a world coordinate system of a robot hand. Referring to FIG. 6, a coordinate system of the CCD camera 110 corresponds to a world coordinate system of the robot hand 100 after a rotation and a translation. Thus, a robot hand/eye calibration is a process of finding the elements, a rotation matrix R, which gives a direction of the CCD camera 110, and components of a translation vector t, which gives a location of the CCD camera 110, in the world coordinate system.

In the hand/eye calibration method according to the present invention, the pin-hall camera model is used in which distortion of the lens 114 or misalignment of a light axis can be ignored. The relations between the robot hand 100 of FIG. 6 and the CCD camera 110 can be expressed as follows, X _(h) =RX _(c) +t  (4)

where X_(h) denotes the world coordinate system of the robot hand 100, i.e., X_(c) denotes a coordinate system of the CCD camera 110, R denotes a rotation matrix, and t denotes a translation vector.

The relation between the CCD camera 110 and the image can be expressed as follows.

$\begin{matrix} {{\left( {u - u_{0}} \right) = {\frac{f}{S_{x}}\frac{x_{c}}{z_{c}}}},{\left( {v - v_{0}} \right) = {\frac{f}{S_{y}}\frac{y_{c}}{z_{c}}}}} & (5) \end{matrix}$

where, u and u₀ denote X coordinates on an image plane, and v and v₀ denote Y coordinates on an image plane. In addition, f denotes a focal length between the lens 114 and the CCD array 112, and S_(x) and S_(y) denote scale factors of the CCD camera 110. The focal length f and scale factors S_(x) and S_(y) are characteristic values which indicate original characteristics of the CCD camera 110 and they are fixed according to a specification of the CCD camera 110.

If robot motion information already known to the user X_(P1)=R_(p1)X_(p2)+t_(p1) is introduced in Equation 4, the following Equation is obtained. RX _(c1) +t=R _(p1)(RX _(c2) +t)+t _(p1)  (6)

The motion of the CCD camera 110 X_(c1) can be expressed as follows by using Equation 6.

$\begin{matrix} {X_{c\; 1} = {{\frac{\left( {R^{- 1}R_{P\; 1}R} \right)}{R_{c\; 1}}X_{c\; 2}} + \frac{R^{- 1}\left( {{R_{p\; 1}t} + t_{p\; 1} - t} \right)}{t_{c\; 1}}}} & (7) \end{matrix}$

If the rotation matrix is excluded from Equation 7 and only translation is considered, the rotation matrix R can be expressed as follows. t _(c1) =R ⁻¹ t _(p1)  (8)

Equation 8 can be expressed by substituting t_(p1) with three motion vectors of the robot, t_(p1), t_(p2), and t_(p3) as follows. (t _(c′1) , t _(c′2) , t _(c′3))=R ⁻¹(t _(p1) , t _(p2) , t _(p3))  (9)

Here, image vectors corresponding to three motion vectors of the robot hand, t_(p1), t_(p2), and t_(p3) are OF₁, OF₂, and OF₃, and each image vector is defined by the following Equation 10,

$\begin{matrix} {{OF}_{i} = {f\begin{bmatrix} {\frac{\left( {u_{i} - u_{0}} \right)}{f_{x}},} & {\frac{\left( {v_{i} - v_{0}} \right)}{f_{y}},1} \end{bmatrix}}} & (10) \end{matrix}$

where

${f_{x} = \frac{f}{S_{x}}},{{{and}\mspace{14mu} f_{y}} = {\frac{f}{S_{y}}.}}$ Intrinsic parameters can be calculated as follows.

$\begin{matrix} {\left\lbrack {{{OF}_{1} \cdot {OF}_{2}} = 0} \right\rbrack{{{\frac{1}{f_{x}^{2}}\left( {u_{1} - u_{0}} \right)\left( {u_{2} - u_{0}} \right)} + {\frac{1}{f_{y}^{2}}\left( {v_{1} - v_{0}} \right)\left( {v_{2} - v_{0}} \right)} + 1} = {0\left\lbrack {{{OF}_{1} \cdot {OF}_{3}} = 0} \right\rbrack}}{{{\frac{1}{f_{x}^{2}}\left( {u_{1} - u_{0}} \right)\left( {u_{3} - u_{0}} \right)} + {\frac{1}{f_{y}^{2}}\left( {v_{1} - v_{0}} \right)\left( {v_{3} - v_{0}} \right)} + 1} = {0\left\lbrack {{{OF}_{2} \cdot {OF}_{3}} = 0} \right\rbrack}}{{{\frac{1}{f_{x}^{2}}\left( {u_{2} - u_{0}} \right)\left( {u_{3} - u_{0}} \right)} + {\frac{1}{f_{y}^{2}}\left( {v_{2} - v_{0}} \right)\left( {v_{3} - v_{0}} \right)} + 1} = 0}} & (11) \end{matrix}$

Equation 11 can be expressed as follows, u ₀(u ₂ −u ₃)+s ₁(v ₂ −v ₃)−s ₂ v ₁(v ₂ −v ₃)=u ₁(u ₂ −u ₃) u ₀(u ₁ −u ₃)+s ₁(v ₁ −v ₃)−s ₂ v ₂(v ₁ −v ₃)=u ₂(u ₁ −u ₃)  (12)

where

${s_{1} = {v_{0}\frac{f_{x}^{2}}{f_{y}^{2}}}},{{{and}\mspace{14mu} s_{2}} = {\frac{f_{x}^{2}}{f_{y}^{2}}.}}$ Equation 12 can be expressed in a matrix form as follows.

$\begin{matrix} {{\begin{bmatrix} \left( {u_{2} - u_{3}} \right) & \left( {v_{2} - v_{3}} \right) & {- {v_{1}\left( {v_{2} - v_{3}} \right)}} \\ \left( {u_{1} - u_{3}} \right) & \left( {v_{1} - v_{3}} \right) & {- {v_{2}\left( {v_{1} - v_{3}} \right)}} \\ \left( {u_{2}^{\prime} - u_{3}^{\prime}} \right) & \left( {v_{2}^{\prime} - v_{3}^{\prime}} \right) & {- {v_{1}^{\prime}\left( {v_{2}^{\prime} - v_{3}^{\prime}} \right)}} \\ \left( {u_{1}^{\prime} - u_{3}^{\prime}} \right) & \left( {v_{1}^{\prime} - v_{3}^{\prime}} \right) & {- {v_{2}^{\prime}\left( {v_{1}^{\prime} - v_{3}^{\prime}} \right)}} \end{bmatrix}\begin{bmatrix} u_{0} \\ s_{1} \\ s_{2} \end{bmatrix}} = \begin{bmatrix} {u_{1}\left( {u_{2} - u_{3}} \right)} \\ {u_{2}\left( {u_{1} - u_{3}} \right)} \\ {u_{1}^{\prime}\left( {u_{2}^{\prime} - u_{3}^{\prime}} \right)} \\ {u_{2}^{\prime}\left( {u_{1}^{\prime} - u_{3}^{\prime}} \right)} \end{bmatrix}} & (13) \end{matrix}$

In consideration of rotation and translation of the robot hand 100, the translation vector t between the robot hand 100 and the CCD camera 110 can be expressed as follows, t _(c1) =R ⁻¹(R _(p1) t+t _(p1) −t) t=(R _(p1) −I)⁻¹(Rt _(c1) −t _(p1))  (14)

where (R_(p1), t_(p1)) denotes motion information already known by the user, and R denotes a rotation matrix which is calculated from three rotations of the robot hand 100. t_(c′1) denotes an image vector, and I denotes a projective invariant shape descriptor calculated from a two-dimensional image. In order to improve the precision of the hand/eye calibration, it is very important to correctly set points corresponding to coordinates which are predetermined within the field of view of the CCD camera 110. Therefore, in the present invention, corresponding points are obtained by the CCD camera 110 by using the projective invariant shape descriptor which does not vary under nonlinear transformation. Then, the corresponding points are used as calibration targets to conduct hand/eye calibration. The projective invariant shape descriptor I, which is used as a fundamental factor of the hand/eye calibration, can be defined as follows.

$\begin{matrix} {{I \equiv \frac{{\det\left( {q_{5}q_{1}q_{4}} \right)}{\det\left( {q_{5}q_{2}q_{3}} \right)}}{{\det\left( {q_{5}q_{1}q_{3}} \right)}{\det\left( {q_{5}q_{2}q_{4}} \right)}}} = \frac{{\det\left( {P_{5}P_{1}P_{4}} \right)}{\det\left( {P_{5}P_{2}P_{3}} \right)}}{{\det\left( {P_{5}P_{1}P_{3}} \right)}{\det\left( {P_{5}P_{2}P_{4}} \right)}}} & (15) \end{matrix}$

where P denotes points of the object, q denotes corresponding points of the image as shown in FIG. 3. det(·) in Equation 15 can be defined as follows.

$\begin{matrix} \begin{matrix} {{\det\left( {q_{1}q_{2}q_{3}} \right)} = {f\begin{bmatrix} x_{1} & x_{2} & x_{3} \\ y_{1} & y_{2} & y_{3} \\ 1 & 1 & 1 \end{bmatrix}}} \\ {{\det\left( {P_{1}P_{2}P_{3}} \right)} = {{f\begin{bmatrix} X_{1} & X_{2} & X_{3} \\ Y_{1} & Y_{2} & Y_{3} \\ 1 & 1 & 1 \end{bmatrix}} = {2^{k}\left( {{Area}\mspace{14mu}{of}\mspace{14mu}\Delta\; P_{1}P_{2}P_{3}} \right)}}} \end{matrix} & (16) \end{matrix}$

The projective invariant shape descriptor I expressed in Equations 15 and 16 represents information which does not vary under nonlinear transformation as shown in Equation 2 and does not vary though images obtained by the CCD camera 110 are transformed.

FIG. 7 is a view for explaining a method of obtaining a projective invariant shape descriptor from a 2-dimensional image. Referring to FIG. 7, a contour of the two-dimensional image of a drawing is extracted, and the extracted contour is divided into five similar intervals. Coordinates of points (X₁(1), X₁(k), X₂(1), X₂(k), X₃(1), X₃(k), X₄(1), X₄(k), X₅(1), X₅(k)) which constitute each interval are obtained, and then the projective invariant shape descriptor is calculated. The points (X₁(1), X₁(k), X₂(1), X₂(k), X₃(1), X₃(k), X₄(1), X₄(k), X₅(1), X₅(k)) are input into Eqation 15 recursively, with moving continuously by 1/N times the length of the contour along the contour until each point reaches its initial location.

$\begin{matrix} {{I(k)} = \frac{{\det\left( {X_{5}X_{1}X_{4}} \right)}{\det\left( {X_{5}X_{2}X_{3}} \right)}}{{\det\left( {X_{5}X_{1}X_{3}} \right)}{\det\left( {X_{5}X_{2}X_{4}} \right)}}} & (17) \end{matrix}$

where X₁(k)=(X(k), Y(k),1),

$\begin{matrix} {{{X_{2}(k)} = \left( {{X\left( {\frac{N}{5} + k} \right)},{Y\left( {\frac{N}{5} + k} \right)},1} \right)},} \\ {{{X_{2}(k)} = \left( {{X\left( {\frac{N}{5} + k} \right)},{Y\left( {\frac{N}{5} + k} \right)},1} \right)},} \\ {{{X_{3}(k)} = \left( {{X\left( {\frac{2N}{5} + k} \right)},{Y\left( {\frac{2N}{5} + k} \right)},1} \right)},} \\ {{{X_{4}(k)} = \left( {{X\left( {\frac{3N}{5} + k} \right)},{Y\left( {\frac{3N}{5} + k} \right)},1} \right)},} \end{matrix}$

${{X_{5}(k)} = \left( {{X\left( {\frac{4N}{5} + k} \right)},{Y\left( {\frac{4N}{5} + k} \right)},1} \right)},$ and 1≦k≦N, and X(k) and Y(k) denotes X and Y axis coordinate function of the contour.

An example of projective invariant shape descriptor calculated from a 2-dimensional shape of FIG. 7 is shown in FIG. 8. The calculation result of the projective invariant shape descriptor I of FIG. 8, i.e., projective invariant, maintains its intrinsic value though the shape of the image obtained by the CCD camera 110 is transformed. In addition, the projective invariant shape descriptor I is not affected by noise or slant angles. Thus, if the projective invariant is used for the hand/eye calibration, precision of the calibration can be improved.

Corresponding points of the images obtained by the CCD camera 110 by using the projective invariant shape descriptor I can be extracted as follows.

In order to extract corresponding points of the images, errors in the projective invariant shape descriptor I have to be defined. In the present invention, the errors are defined using a Gaussian noise model. In order to use the Gaussian noise model, Equation 17 can be expressed as follows.

$\begin{matrix} {I = \frac{{\det\left( {X_{5}X_{1}X_{4}} \right)}{\det\left( {X_{5}X_{2}X_{3}} \right)}}{{\det\left( {X_{5}X_{1}X_{3}} \right)}{\det\left( {X_{5}X_{2}X_{4}} \right)}}} & (18) \end{matrix}$

where X_(i)=(x_(i), y_(i), 1)^(τ) or I=I(x₁, y₁, x₂, y₂, x₃, y₃, x₄, y₄, x₅, y₅).

Here, if (x_(i), y_(i)) is true data, and ({tilde over (x)}_(i), {tilde over (y)}_(i)) is a noisy observation parameter, the noise observation parameter can be expressed as follows, {tilde over (x)} _(i) =x _(i)+ξ_(i) , {tilde over (y)} _(i) =y _(i)+η_(i)  (19)

where noise terms ξ_(i) and η_(i) are distributed noise terms, and their mean and variance are 0 and σ_(i) ². The noise terms can be expressed as follows.

$\begin{matrix} {{{E\left\lbrack \xi_{i} \right\rbrack} = {{E\left\lbrack \eta_{i} \right\rbrack} = 0}}{{V\left\lbrack \xi_{i} \right\rbrack} = {{V\left\lbrack \eta_{i} \right\rbrack} = \sigma_{i}^{2}}}{{{E\left\lbrack {\xi_{i}\xi_{j}} \right\rbrack} = \begin{Bmatrix} \sigma_{0}^{2} & {{{if}\mspace{14mu} i} = j} \\ 0 & {otherwise} \end{Bmatrix}},{{E\left\lbrack {\eta_{i}\eta_{j}} \right\rbrack} = \begin{Bmatrix} \sigma_{0}^{2} & {{{if}\mspace{14mu} i} = j} \\ 0 & {otherwise} \end{Bmatrix}}}{{E\left\lbrack {\xi_{i}\eta_{j}} \right\rbrack} = 0}} & (20) \end{matrix}$

Noisy invariant can be expressed as follows after noisy measurements on the image are observed. Ĩ({tilde over (x)}₁, {tilde over (y)}₁, {tilde over (x)}₂, {tilde over (y)}₂, {tilde over (x)}₃, {tilde over (y)}₃, {tilde over (x)}₄, {tilde over (y)}₄, {tilde over (x)}₅, {tilde over (y)}₅)  (21)

In order to calculate an expected value and a variance of the noisy invariant Ĩ, the noisy invariant Ĩ can be expressed with (x₁, y₁, x₂, y₂, x₃, y₃, x₄, y₄, x₅, y₅) by using Talyor series.

$\begin{matrix} \begin{matrix} {\overset{\sim}{I} \approx {I + {\sum\limits_{i = 1}^{5}\left\lbrack {{\left( {{\overset{\sim}{x}}_{i} - x_{i}} \right)\frac{\partial\overset{\sim}{I}}{\partial{\overset{\sim}{x}}_{i}}} + {\left( {{\overset{\sim}{y}}_{i} - y_{i}} \right)\frac{\partial\overset{\sim}{I}}{\partial{\overset{\sim}{y}}_{i}}}} \right\rbrack}}} \\ {= {I + {\sum\limits_{i = 1}^{5}\left\lbrack {{\xi_{i}\frac{\partial\overset{\sim}{I}}{\partial{\overset{\sim}{x}}_{i}}} + {\eta_{i}\frac{\partial\overset{\sim}{I}}{\partial{\overset{\sim}{y}}_{i}}}} \right\rbrack}}} \end{matrix} & (22) \end{matrix}$

Here, the variance can be expressed as follows.

$\begin{matrix} {{E\left\lbrack \left( {\overset{\sim}{I} - I} \right)^{2} \right\rbrack} = {\sigma_{0}^{2}{\sum\limits_{i = 1}^{5}\left\lbrack {\left( \frac{\partial\overset{\sim}{I}}{\partial{\overset{\sim}{x}}_{i}} \right)^{2} + \left( \frac{\partial\overset{\sim}{I}}{\partial{\overset{\sim}{y}}_{i}} \right)^{2}} \right\rbrack}}} & (23) \end{matrix}$

A threshold of the noisy invariant can be defined as follows. ΔI =3×√{square root over (E[(Ĩ−I)²])}  (24)

The corresponding points are found from the images obtained by the CCD camera 110 of the robot hand 100 by repeating calculation of the projective invariant shape descriptor, and boundary data between a previous image and a following image consecutively obtained through the CCD camera 110 can be expressed as follows. O_(k) ^(In)={X_(Ik) ^(In), Y_(Ik) ^(In)}, k=1˜n^(In) O_(k) ^(Mo)={X_(Ik) ^(Mo), Y_(Ik) ^(Mo)}, k=1˜n^(Mo)  (25)

where n^(In) and n^(Mo) denote the number of points in a boundary between a scene and a model. The boundary data are presented by subsampling N data, and this subsampling can be expressed as follows. q_(i) ^(In)={X_(τ1(i)) ^(In), Y_(τ1(i)) ^(In)},q_(i) ^(Mo)={X_(τ2(i)) ^(Mo), Y_(τ2(i)) ^(Mo)}, i=1˜N  (26)

where

${{\tau_{1}(i)} = {\frac{n^{In}}{N} \times i}},{{\tau_{2}(i)} = {\frac{n^{Mo}}{N} \times i}},$ and N denotes the number of points on a normalized contour.

Then, a projective invariant shape descriptor is calculated by using q_(i) ^(In) and q_(i) ^(Mo) defined in Equation 26 when a value of the following Equation is minimized,

$\begin{matrix} {ɛ^{2} = {\sum\limits_{i = 1}^{N}{{w_{i}^{2}\left( {q_{i}^{In} - {\left( {{C \cdot q_{i}^{Mo}} + d} \right)^{- 1}\left( {{A\; q_{i}^{Mo}} + b} \right)}} \right)}^{T}\;\left( {q_{i}^{In} - {\left( {{C \cdot q_{i}^{Mo}} + d} \right)^{- 1}\left( {{A\; q_{i}^{Mo}} + b} \right)}} \right)}}} & (27) \end{matrix}$

where A, b, c, and d denote variants defined from transformation between the previous image and the following image and can be expressed as follows.

$\begin{matrix} {\begin{bmatrix} X_{Ij}^{2} \\ Y_{Ij}^{2} \\ 1 \end{bmatrix} = {\left( {{s_{7}^{\prime}\; X_{Ij}^{2}} + {s_{8}^{\prime}\; Y_{Ij}^{2}} + s_{9}} \right)^{- 1}\left( {{\begin{bmatrix} s_{1} & s_{2}^{\prime} \\ s_{4}^{\prime} & s_{5} \end{bmatrix}\begin{bmatrix} X_{Ij}^{1} \\ Y_{Ij}^{1} \end{bmatrix}} + \begin{bmatrix} s_{3}^{\prime} \\ s_{6}^{\prime} \end{bmatrix}} \right)}} & (28) \\ {q_{i}^{2} = {\left( {{C \cdot q_{i}^{1}} + d} \right)^{- 1}\left( {{A\; q_{i}^{1}} + b} \right)}} & (29) \end{matrix}$

The weight w_(i) of Equation 27 is calculated by the variance defined in Equation 23 as follows.

$\begin{matrix} {{\frac{1}{w_{i}^{2}} \equiv \sigma_{0}^{2}} = {\sum\limits_{i = j}^{5}{\left\lbrack {\left( \frac{\partial{\overset{\sim}{I}}_{i}}{\partial{\overset{\sim}{x}}_{j}} \right)^{2} + \left( \frac{\partial{\overset{\sim}{I}}_{i}}{\partial{\overset{\sim}{y}}_{j}} \right)^{2}} \right\rbrack \times {E\left\lbrack \left( {{\overset{\sim}{I}}_{i} - I_{i}} \right)^{2} \right\rbrack}}}} & (30) \end{matrix}$

The projective invariant shape descriptors can be minimized by Equations 27 through 30 as follows.

$\begin{matrix} \begin{matrix} {P = {\left( {Q^{T}Q} \right)^{- 1}Q^{T}H}} \\ {{Here},{P = \left( {s_{1},s_{2}^{\prime},s_{4}^{\prime},s_{5},s_{3}^{\prime},s_{6}^{\prime},s_{7}^{\prime},s_{8}^{\prime}} \right)^{T}},} \\ \begin{matrix} {Q =} \\ {\mspace{14mu}\begin{bmatrix} \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ {w_{i}\; X_{Ii}^{Mo}} & {w_{i}\; Y_{Ii}^{Mo}} & w_{i} & 0 & 0 & 0 & {w_{i}\; X_{Ii}^{In}X_{Ii}^{Mo}} & {w_{i}\; X_{Ii}^{In}\; Y_{Ii}^{Mo}} \\ 0 & 0 & 0 & {w_{i}\; X_{Ii}^{Mo}} & {w_{i}\; Y_{Ii}^{Mo}} & w_{i} & {w_{i}\; X_{Ii}^{In}\; X_{Ii}^{Mo}} & {w_{i}\; X_{Ii}^{In}Y_{Ii}^{Mo}} \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \end{bmatrix}} \end{matrix} \\ {H = \left( \;{\cdots - {w_{i}\; X_{Ii}^{In}} - {w_{i}\; Y_{Ii}^{In}\mspace{11mu}\cdots}}\; \right)^{T}} \end{matrix} & (31) \end{matrix}$

After the projective invariant shape descriptors are minimized by using Equation 31, the following image obtained by the CCD camera 110 is transformed into a previous image. This transformation can be expressed as follows. q _(i′) ^(Mo′)=(C·q _(i) ^(Mo) +d)⁻¹(Aq _(i) ^(Mo) +b), i=1˜N  (32)

where A, b, c, and d denotes variance defined transformation between the previous image and the following image.

After the transformation between the previous image and the following image is completed, the ratio of the distance between boundary data before the transformation to the distance between boundary data after the transformation, i.e., _(τ2)(i)′, is calculated by using the following Equation, and then the length between data is reset by using the ratio.

$\begin{matrix} \begin{matrix} \begin{matrix} {{{\tau_{2}^{\prime}(i)} = \frac{{q_{i + 1}^{{Mo}^{\prime}} - q_{i}^{{Mo}^{\prime}}}}{T}},} & {i = {1 \sim N}} \end{matrix} \\ {T = {\sum\limits_{i = 1}^{N}{{q_{i + 1}^{{Mo}^{\prime}} - q_{i}^{{Mo}^{\prime}}}}}} \end{matrix} & (33) \end{matrix}$

By using the ratio _(τ2)(i)′ calculated by Equation 33, the following image can be resampled as follows. q_(i) ^(In′)=O_(τ2(i)) ^(In), i=1˜N  (34)

After that, in order to include errors between the previous image and the following image within a predetermined scope, Equations 29 through 34 are repeated. The errors are expressed by errors of the corresponding points and similarities between the projective invariant shape descriptors (I_(m), I_(i)) of the boundary data. A similarity value of the projective invariant shape descriptors (I_(m), I_(i)) of the boundary data can be expresses as follows.

$\begin{matrix} \begin{matrix} {{{similarity}\left( {I_{m},I_{i}} \right)} = \frac{\sum\limits_{k = 1}^{N}{T(k)}}{N}} \\ {{T(k)} = \left\{ \begin{matrix} {1,} & {{{if}\mspace{14mu}{{{I_{m}(k)} - {I_{i}(k)}}}} < {\Delta\; I}} \\ {0,} & {otherwise} \end{matrix} \right.} \end{matrix} & (35) \end{matrix}$

If the maximum value of the similarity values is greater than a predetermined threshold, it is determined that the corresponding points of the previous image and the following image are the same as each other. The value of ΔI in Equation 35 and the predetermined threshold are selected according to an environment to which the present invention is applied and a required precision.

FIG. 9 is a flowchart of a method for hand/eye calibration according to a preferred embodiment of the present invention. Referring to FIG. 9, the hand/eye calibration method according to the present invention includes calculating a projective invariant shape descriptor I from a two-dimensional image (step 210). Then, corresponding points between a previous image and a following image consecutively obtained through the CCD camera 110 are extracted by using the calculated projective invariant shape descriptor I (step 220). The extracted corresponding points are used as targets to perform the hand/eye calibration.

Then, a rotation matrix R for a coordinate, i.e., the extracting corresponding points, is calculated from a translation of the robot hand 100 (step 230). Here, the rotation matrix R is calculated by Equation 8. A translation vector t for the coordinate, i.e., the extracted corresponding points, is calculated from translation and rotation of the robot hand 100 (step 240). Here, the translation vector t is calculated by Equation 14. After completion of steps 230 and 240, the hand/eye calibration which defines a relation between the robot hand 100 and the CCD camera 110, that is, obtains a calculation result of X_(h)=RX_(c)+t, is completed (step 250). Here, X_(h) denotes a coordinate system of the robot hand 100, and X_(c) denotes a coordinate system of the CCD camera 110 mounted on the robot hand 100.

FIG. 10 is a detailed flowchart of a method of obtaining corresponding points between a previous image and a following image shown in FIG. 9. In general, a calibration target which is finely organized is required to accurately perform the hand/eye calibration. Thus, as shown in FIG. 10 of the present invention, corresponding points of consecutive images obtained by the CCD camera 110 are extracted by using the projective invariant shape descriptor I which is not affected by nonlinearity or noise of the CCD camera 110, and the projective invariant shape descriptor I is used as the calibration target.

In order to accurately perform the hand/eye calibration, errors of the projective invariant shape descriptor I of images are defined (step 2200), and noisy invariant is calculated by analyzing an amount of noises of the images (step 2210). Then, a threshold is calculated according to the noisy invariant calculated in step 2210 (step 2220).

Boundary data of a previous image and a following image obtained by the CCD camera 110 are extracted (step 2230). The extracted boundary data is presented by subsampling N data (step 2240). Then, a projective invariant shape descriptor is minimized in accordance with Equation 31 (step 2250), and the following image is transformed into a previous image in response to the minimized projective invariant shape descriptor (step 2260). After that, the distance between boundary data is reset by using the ratio of the distance between boundary data before the transformation to the distance between boundary data after the transformation (step 2270).

After the distance between the boundary data is reset in step 2270, similarities between the boundary data of the previous image and the following image are founded (step 2280), and corresponding points between the previous image and the following image are extracted by using the found similarities (step 2290).

The hand/eye calibration method according to the present invention extracts corresponding points between the previous image and the following image by using the projective invariant shape descriptor I. Thus, it is possible to accurately perform the hand/eye calibration without being affected by noise or nonlinearity of a camera.

In the present invention, the hand/eye calibration method is applied to the robot hand. However, the hand/eye calibration method can be applied to various kinds of visual servoing devices which control motions of an object by using images obtained through at least one camera.

The present invention may be embodied as a computer readable code in a computer readable medium. The computer readable medium includes all kinds of recording device in which computer readable data are stored. The computer readable medium includes, but not limited to, ROM's, RAM's, CD-ROMs, magnetic tapes, floppy disks, optical data storage device, and carrier waves such as transmissions over the Internet. In addition, the computer readable medium may be distributed to computer systems which are connected via a network, be stored and embodied as the computer readable code.

While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various transforms in form and details may be made therein without departing from the spirit and scope of the present invention as defined by the following claims. 

1. A method of extracting corresponding points between images, the method comprising: (a) defining errors for a projective invariant shape descriptor for a two-dimensional image from at least two images obtained at a predetermined interval and calculating noisy invariance; (b) calculating a threshold to be used to set corresponding points according to the noisy invariance; (c) extracting boundary data from the images and presenting the extracted boundary data by subsampling N data; (d) minimizing the projective invariant shape descriptor; (e) transforming a following image into the previous image according to the minimized projective invariant shape descriptor; (f) resetting distance between boundary data in consideration of the ratio of distance between boundary data before the transformation to distance between boundary data after the transformation; and (g) finding similarities between the boundary data and extracting corresponding points between the previous image and the following image.
 2. The method of claim 1, wherein the errors are defined by using a Gaussian noise model.
 3. The method of claim 1, wherein the steps (d) through (f) are repeated until the errors are within a predetermined scope.
 4. A computer readable medium having embodied thereon a computer program for executing a method of claim
 1. 